home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / msdos / raytrace / pov / bin / pov_tips.txt < prev    next >
Internet Message Format  |  1993-12-20  |  7KB

  1. From charnel!olivea!spool.mu.edu!howland.reston.ans.net!europa.eng.gtefsd.com!uunet!news2.uunet.ca!uunet.ca!portnoy!canrem.com!david.anjo Wed Nov  3 19:15:46 PST 1993
  2. Article: 35799 of comp.graphics
  3. Newsgroups: comp.graphics
  4. Subject: POV T'N T No.9      (1/3)
  5. From: david.anjo@canrem.com (David Anjo)
  6. Path: charnel!olivea!spool.mu.edu!howland.reston.ans.net!europa.eng.gtefsd.com!uunet!news2.uunet.ca!uunet.ca!portnoy!canrem.com!david.anjo
  7. Distribution: world
  8. Message-ID: <60.30488.4387.0N18917C@canrem.com>
  9. Date: Tue,  2 Nov 93 21:08:00 -0400
  10. Organization: CRS Online  (Toronto, Ontario)
  11. Lines: 71
  12.  
  13. <<***** Split Message. Part 1 Of 3 *****>>
  14. PoV Tips'n Tricks No.9
  15.  
  16. Based on the question posed by new user of PoV I thought I'd 
  17. turn my attention to the creation of flat image mapping and 
  18. height fields. 
  19.  
  20. The former is something that the authour of Pv3D, Ludovic 
  21. Lecointe, initiated some months ago at my request. The 
  22. technique is a simple one and one I use extensively, especially 
  23. when creating "art gallery" rooms. Note how the size of the 
  24. flat image map is matched to the overall scale of the object 
  25. you are mapping to. That will provide the "best fit" that I 
  26. have experienced, if the quality of the image map is something 
  27. you want to retain.
  28.  
  29. Height field "logos", although limited by the initial image 
  30. resolution, are one the one way I know of for including 3D text 
  31. in PoV scenes. Although far from perfect (actually kind of 
  32. chunky) this technique is still reasonably acceptable. 
  33. Especially if you are careful in how you apply your lighting 
  34. and textures.
  35.  
  36. The demonstration scene is as follows...
  37.  
  38. -----cut here--------------------------------------------------
  39.  
  40. /* PV3D B1.91       One modeler for POV-RAY and VIVID
  41.    POV-RAY V2.0 Generated file
  42.    Pv3D is Copyright Lecointe Ludovic 1992,1993
  43.  
  44.    PoV v.2.0 file demonstrating flat image (GIF) mapping and 
  45.    height field "logo" creation... from DASIGN/David Anjo                   
  46.        
  47.  
  48.    Creation time: 6 minutes 23 seconds at 320x240, running 
  49.    under Windows 3.1, with the following PoV parameters, as 
  50.    defined in my POVRAY.DEF file:
  51.  
  52.    +W320 +H240 +A0.25 +X +V +MV2.0                           */
  53.  
  54.  
  55. /* External PV3D 'DEFAULT.INC' Area 
  56.    ...standard texture for those objects without a defined 
  57.    finish attribute - optional, but handy...                 */
  58.  
  59. #default { pigment { colour rgbf <1.0 1.0 1.0 0.0>}
  60.            finish { ambient 0.4
  61.             diffuse 0.6
  62.             phong   1.0    }}
  63.  
  64. // Standard POV includes files Area
  65.  
  66. #include "colors.inc"
  67. #include "shapes.inc"
  68. #include "textures.inc"
  69.  
  70. /* External 'filename.PIT' pigment Area for this frame
  71.    ...this is where I declare my image maps for later inclusion 
  72.    within the scene...                                        */
  73.  
  74. #declare POVTEST1 = pigment {
  75.                 image_map { < 1, -1, 0 > gif "POVTEST.GIF"   
  76.                     map_type 0  interpolate 2 }}
  77.  
  78. /* Note that POVTEST.GIF is located in a directory that is 
  79.    also included in the search path found within my 
  80.  
  81. <<***** Continued Next Message *****>>
  82. ~~~
  83.  * VbReader 2.0 #11 * It's not the tobacco we're after, it's the fire
  84.  
  85. <<***** Split Message. Part 2 Of 3 *****>>
  86.    POVRAY.DEF file, via the "+l" parameter. The file itself is 
  87.    a 320x200-256 GIF, simply white text on a black background. 
  88.    I created the original file in PhotoStyler and then 
  89.    converted that 24 bit TIF to a GIF via Image Alchemy. The 
  90.    palette was specifically mapped via a custom GIF file who's 
  91.    palette map is typically referred to as NTSC "compatible". 
  92.    That doesn't mean you have to do this; it just works best 
  93.    for me and the work I do...                               */
  94.  
  95. // Camera location... roughly to the "right", "up" and "back".
  96.  
  97. camera { location     <1.0, 4.0, -8.0>
  98.          direction    <0, 0, 1.0>
  99.          up           <0, 1, 0>
  100.          right        <1.3333, 0, 0 >
  101.          look_at      <0.0, 0.0, 0.0>}
  102.  
  103. /* This is the cube I will be flat image mapping the GIF file 
  104.    to. The specific definition provides for a "poster" feel. */
  105.  
  106.    object { box    {<-1.0, -1.0, -1.0>, <1.0, 1.0, 1.0> 
  107.          scale < 3.2, 2.0, 0.1>
  108.          translate < 0.0, 0.75000, 0.0> 
  109.          texture { POVTEST1
  110.          scale < 6.4, 4.0, 0.2>
  111.          translate < -3.2, -1.25000, -0.1>}
  112.                  pigment { quick_colour red    1.00 
  113.                                         green  1.00 
  114.                                         blue   1.00 
  115.                                         filter 0.00}
  116.              bounded_by { box { <-3.3, -1.35000, -0.2>, 
  117.                                     <3.3, 2.85000, 0.2>}}}}
  118.  
  119. /* This is the "height field" logo I will be creating, also 
  120.    using the same GIF file... note the rotation of the object, 
  121.    so the "message" faces the camera (x rotation = 270 
  122.    degrees). Additionally note that the "waterlevel" 
  123.    essentially wipes out the black areas of the GIF image. 
  124.    Thus, only the text, in white, will remain to have the 
  125.    Polished_Brass texture applied to it...                    */
  126.  
  127.    object {    height_field
  128.         { gif "povtest.gif"
  129.         water_level 0.001
  130.         translate < -0.5, -0.5, -0.5> 
  131.         scale < 6.4, 0.5, 4.0>
  132.         rotate < 270, 0, 0> 
  133.         translate < 0.0, -0.75000, -1.0> 
  134.         texture
  135.         {
  136.         Polished_Brass
  137.         scale < 3.2, 0.25000, 2.0>
  138.         rotate < 270, 0, 0>
  139.         translate < 0.0, -0.75000, -1.0> 
  140.         }
  141.         pigment { quick_colour red    1.00 
  142.                                        green  1.00 
  143.                                        blue   1.00 
  144.                                        filter 0.00}
  145.            bounded_by { box { <-3.3, -2.85016, -1.35130>, 
  146.                                   <3.3, 1.35016, -0.64870>}}}}
  147.  
  148. /* A simple box/cube, so the scene has a "floor"... note there 
  149.    is no "bounding box" applied to this object; nothing special
  150.    going on, no need to bound...                              */
  151.  
  152.  
  153. <<***** Continued Next Message *****>>
  154. ~~~
  155.  * VbReader 2.0 #11 * It's not the tobacco we're after, it's the fire
  156.  
  157. <<***** Split Message. Part 3 Of 3 *****>>
  158.    object { box    {<-1.0, -1.0, -1.0>, <1.0, 1.0, 1.0> 
  159.         scale < 4.0, 0.1, 4.0>
  160.         translate < 0.0, -3.0, 0.0>}}
  161.  
  162. // The light for the scene...
  163.  
  164.    object { light_source
  165.             <0.0, 0.0, 0.0>
  166.             colour rgb <1.0, 1.0, 1.0>
  167.             scale <0.4, 0.44, 0.4> 
  168.             translate < 5.0, 15.0, -15.0>}}
  169.  
  170. // end
  171.  
  172. -----cut here--------------------------------------------------
  173.  
  174. That's it... nothing really all that special. The scene isn't 
  175. one for the art galleries of the world; but, hopefully the 
  176. technique will prove beneficial in your raytracing endeavours.
  177.  
  178. Happy 'tracing...
  179.  
  180. David Anjo            | RIME    ->118 | DASIGNet  +1 519 744 8489
  181. david.anjo@canrem.com | FIDO 1:229/15 | 00:00-08:00 EST 9600+ 8N1
  182. ~~~
  183.  * VbReader 2.0 #11 * It's not the tobacco we're after, it's the fire
  184.  
  185.  
  186.